#ifndef __ESP8266_H
#define __ESP8266_H

/*
    esp8266应用API
    使用串口2，需包含串口头文件
    作者: YSS
    日期: 2024-9-19
*/


#include "stm32f10x.h"                  // Device header
#include "uart.h"        // 串口2用于通信
#include "TIM4_Delay.h"  // 用于延迟命令执行，防止命令忙

// 心知天气API接口
#define xinzhi_api  "GET http://api.seniverse.com/v3/weather/now.json?key=%s&location=%s&language=zh-Hans&unit=c\r\n"

// 命令执行结果
typedef enum
{
    ESP_NONE = 0, // 未知错误
    ESP_OK,       // 命令成功
    ESP_ERR,      // 命令错误
}ESP_RET;


// 连接状态
typedef enum
{   
    ESP_NULL = 1,   // 空状态(无定义)
    ESP_AP,         // 已经连接AP
    ESP_TU,         // 已经建立TCP/UDP
    ESP_DISCON,     // 断开TCP/UDP连接
    ESP_DISAP       // 断开AP
}ESP_STATUS; 


// 保存获取到的数据
typedef struct
{
	char id[30];
	char name[10];
	char country[10];
	char text[10];
	int temp;
}W_MSG;



ESP_RET ESP8266_Init(uint32_t Baud);
ESP_RET ESP_SendCmd(const char *cmd);
ESP_RET ESP_ConnectWIFI(char *ssid,char * passwd);
ESP_RET ESP_TcpConnect(char *ipaddr,int port);
ESP_RET ESP_TcpGetWeather(char *Key,char *City,W_MSG *weather);
int AnalysisData(const char *buf, int len,char *tag,char *result);
ESP_STATUS ESP_CheckConnect(void);

#endif